home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].zip / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].do / SELECT.int < prev    next >
Text File  |  1996-12-24  |  3KB  |  88 lines

  1. 0 I=J=Y=N
  2. 10 REM  ************************
  3. 12 REM  *                      *
  4. 14 REM  *   SORTING REVEALED   *
  5. 16 REM  * RICHARD C. VILE, JR. *
  6. 18 REM  *                      *
  7. 20 REM  *        SELECT        *
  8. 22 REM  *                      *
  9. 24 REM  *  COPYRIGHT (C) 1981  *
  10. 25 REM  *    MICRO INK, INC.   *
  11. 26 REM  * CHELMSFORD, MA 01824 *
  12. 27 REM  *  ALL RIGHTS RESERVED *
  13. 28 REM  *                      *
  14. 29 REM  ************************
  15. 30 REM 
  16. 40 TEXT :CALL -936
  17. 41 DIM A(99)
  18. 42 KBD=-16384:CLR=-16368:TITLE=500:INTRO=1000
  19. 44 DISPLAY=600:WAIT=800:CMP=900:INT=950
  20. 46 MUSIC=-10473:TIME=766:TIMBRE=765:PITCH=767
  21. 47 DELAY=975:ERASE=650
  22. 48 GOSUB INTRO
  23. 50 GOSUB TITLE
  24. 100 FOR I=0 TO N
  25. 105 A(I)= RND (100):X=I:GOSUB DISPLAY
  26. 110 NEXT I
  27. 150 FOR I=0 TO N-1
  28. 151 MAX=0
  29. 152 VTAB 23:TAB 32:PRINT "I=";:IF I<10 THEN PRINT " ";:PRINT I;
  30. 155 FOR J=1 TO N-I
  31. 156 KEY= PEEK (KBD):IF KEY<128 THEN 158
  32. 157  POKE CLR,0:GOSUB WAIT
  33. 158 GOSUB DELAY
  34. 159 GOSUB CMP
  35. 160 IF A(J)<=A(MAX) THEN 200
  36. 163 MAX=J
  37. 165 VTAB 24:TAB 32:PRINT "M=";:IF MAX<10 THEN PRINT " ";:PRINT MAX;
  38. 168  POKE 50,63
  39. 175 X=J:GOSUB DISPLAY
  40. 178  POKE 50,255
  41. 185 X=J:GOSUB DISPLAY
  42. 200 NEXT J
  43. 202 TEMP=A(MAX):GOSUB INT
  44. 203 A(MAX)=A(N-I):X=MAX: POKE 50,63:GOSUB DISPLAY:GOSUB INT: POKE 50,255:GOSUB DISPLAY
  45. 204 A(N-I)=TEMP:X=N-I: POKE 50,63:GOSUB DISPLAY:GOSUB INT: POKE 50,255:GOSUB DISPLAY
  46. 212 NEXT I
  47. 215 VTAB 24:TAB 15:PRINT "FINISHED";
  48. 218 IF  PEEK (KBD)<128 THEN 218
  49. 220  POKE CLR,0:CALL -936:GOTO 48
  50. 500 TEXT :CALL -936
  51. 510 VTAB 1:FOR I=0 TO 9:TAB 7+3*I:PRINT I;:NEXT I
  52. 515 VTAB 2:TAB 7:FOR I=0 TO 9:PRINT "---";:NEXT I
  53. 520 FOR J=0 TO 9:VTAB 3+2*J:TAB 4:PRINT J;"! ";:NEXT J
  54. 525 VTAB 23:TAB 13:PRINT "SELECTION SORT"
  55. 530 RETURN 
  56. 600 COL=X MOD 10
  57. 610 ROW=X/10
  58. 620 VTAB 2*ROW+3:TAB 7+3*COL
  59. 630 IF A(X)<10 THEN PRINT " ";
  60. 635 PRINT A(X);
  61. 640 RETURN 
  62. 800 IF KEY# ASC("Q") THEN 810
  63. 805 TEXT :CALL -936:END 
  64. 810 IF  PEEK (KBD)<128 THEN 810
  65. 820  POKE CLR,0:RETURN 
  66. 900 REM  ***TO REMOVE SOUNDS, 901 INSERTED***
  67. 901 RETURN 
  68. 902  POKE PITCH,10: POKE TIME,5:CALL MUSIC
  69. 905 GOSUB DELAY
  70. 910 RETURN 
  71. 950 REM  ***TO REMOVE SOUNDS, 951 INSERTED***
  72. 951 RETURN 
  73. 952  POKE PITCH,49: POKE TIME,3:CALL MUSIC
  74. 955 GOSUB DELAY
  75. 960 RETURN 
  76. 975 FOR DE=1 TO PDL (1):NEXT DE
  77. 980 RETURN 
  78. 1000 VTAB 10:TAB 5:PRINT "I WILL SORT UP TO 100"
  79. 1001 TAB 5:PRINT "INTEGERS INTO ASCENDING"
  80. 1002 TAB 5:PRINT "ORDER USING THE SELECTION SORT."
  81. 1008 VTAB 15:TAB 10:INPUT "VALUE OF N PLEASE",N
  82. 1009 N=N-1
  83. 1010 IF N>=0 THEN 1013
  84. 1012 TEXT :CALL -936:END 
  85. 1013 IF N<=100 THEN RETURN 
  86. 1015 TAB 10
  87. 1020 PRINT "TO BIG!!!!":GOTO 1000
  88.